package com.tianji.learning.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import com.tianji.common.enums.BaseEnum;
import lombok.Getter;

@Getter
public enum QuestionStatus implements BaseEnum {
    // 未查看状态
    UN_CHECK(0, "未查看"),
    // 已查看状态
    CHECKED(1, "已查看"),
    ;

    /**
     * 状态值，用于数据库存储和比较
     */
    @JsonValue
    @EnumValue
    int value;

    /**
     * 状态描述，用于前端展示
     */
    String desc;

    /**
     * 构造方法，用于初始化状态值和描述
     * @param value 状态值
     * @param desc 状态描述
     */
    QuestionStatus(int value, String desc) {
        this.value = value;
        this.desc = desc;
    }

    /**
     * 根据状态值获取对应的QuestionStatus枚举实例
     * @param value 状态值
     * @return 对应的QuestionStatus枚举实例，如果不存在则返回null
     */
    @JsonCreator(mode = JsonCreator.Mode.DELEGATING)
    public static QuestionStatus of(Integer value) {
        if (value == null) {
            return null;
        }
        for (QuestionStatus status : values()) {
            if (status.equalsValue(value)) {
                return status;
            }
        }
        return null;
    }
}
